import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from utils import ArgumentParser, ConfigLoader, LOG
from model import ModelFactory
from translator import PDFTranslator

if __name__ == '__main__':
    # 解析命令行参数
    argument_parser = ArgumentParser()
    args = argument_parser.parse_arguments()

    # 加载配置文件
    config_loader = ConfigLoader(args.config)
    config = config_loader.load_config()

    # 获取模型名称和 API Key
    model_name = args.model if args.model else config[args.model_type]['model']
    api_key = args.api_key if args.api_key else config[args.model_type]['api_key']

    # 创建模型实例对象（工厂模式）
    model = ModelFactory.create_model(args.model_type, model_name, api_key)

    # 获取输入文件路径、文件格式和输出文件路径
    input_file_path = args.input_file_path if args.input_file_path else config['common']['input_file_path']
    output_file_format = args.output_file_format if args.output_file_format else config['common']['output_file_format']
    output_file_path = args.output_file_path if args.output_file_path else config['common']['output_file_path']

    # 创建 translator 并进行翻译与保存
    translator = PDFTranslator(model)
    translator.translate_pdf(input_file_path, output_file_format, output_file_path)